package com.secure.properties;

import com.secure.bean.AppKey;
import com.secure.bean.UserKey;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 安全属性
 *
 * @author duchao
 */
@Data
@ConfigurationProperties(prefix = "api.secure")
public class SecureProperties {

    /**
     * 开启
     */
    private boolean enable = false;

    /**
     * 有效期，单位，秒
     * 注意<=0不过期
     */
    private int timeout = 0;

    /**
     * 安全请求接口路径，格式：path[:encryptResponse]
     * 1.path，响应不加密，例如：/users/getInfo
     * 2.path:encryptResponse，响应加密，例如：/users/getInfo:encryptResponse
     */
    private List<String> handlerMappingPathList;

    /**
     * 应用key配置
     * 服务提供方提供
     */
    private AppKey appKey;

    /**
     * 用户验签key配置，Map<服务消费方标识,UserKey>
     */
    private Map<String, UserKey> userKeyConfig = new HashMap<>();

}